﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Dominio;
using Servicios;


namespace EstadisticaProduce.Acuicultura
{
    public partial class frmFactores : System.Web.UI.Page
    {
        clsAcuicultura _consultas = new clsAcuicultura();
        string err_mens = string.Empty;
        Int32 iresultado = 0;
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                hdnperiodo.Value = "201112";
                hdncodempresa.Value = "00001";
                hdncodestablecimiento.Value = "1";
                cargaValidacionFactores();
            }
        }

        private void cargaGrilla(string _tipofactor) {

            string COD_PERIODO= hdnperiodo.Value;
            string COD_EMPRESA = hdncodempresa.Value;
            decimal COD_ESTABLECIMIENTO = Convert.ToDecimal(hdncodestablecimiento.Value);
            string TIP_FACTOR = _tipofactor;

            try
            {
                iresultado = 1;
                Hashtable ht = new Hashtable();
                ht.Add("COD_PERIODO",COD_PERIODO);
                ht.Add("COD_EMPRESA",COD_EMPRESA);
                ht.Add("COD_ESTABLECIMIENTO",COD_ESTABLECIMIENTO);
                ht.Add("TIP_FACTOR", TIP_FACTOR);
                List<domConsultasGenerales> lst = new List<domConsultasGenerales>();
                lst = _consultas.ListaFactores(ht);

                gvResultado.DataSource = lst;
                gvResultado.DataBind();
            }
            catch (Exception ex)
            {
                err_mens = ex.Message;
                iresultado = 99;
            }
            finally { 
                if(iresultado==99){
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "err_msg", "ShowError('" + err_mens + "');", true);
                }else{
                    
                }            
            }
        }

        private void cargaValidacionFactores() {
            string COD_PERIODO = hdnperiodo.Value;
            string COD_EMPRESA = hdncodempresa.Value;
            decimal COD_ESTABLECIMIENTO = Convert.ToDecimal(hdncodestablecimiento.Value);
            string TIP_FACTOR = string.Empty;

            try
            {
                Hashtable ht = new Hashtable();
                ht.Add("COD_PERIODO", COD_PERIODO);
                ht.Add("COD_EMPRESA", COD_EMPRESA);
                ht.Add("COD_ESTABLECIMIENTO", COD_ESTABLECIMIENTO);
                List<domConsultasGenerales> lst = new List<domConsultasGenerales>();
                lst = _consultas.TotalCosechaPropia(ht);
                lblTotalPeriodoActual.Text = "Total cosecha periodo:" + lst[0].codperiodo + ": <b>" + lst[0].totalperiodo.ToString() + "</b>";
                lblTotalPeriodoAnterior.Text = "Total cosecha periodo:" + lst[0].codperiodoanterior + ": " + lst[0].totalperiodoanterior.ToString();
                TIP_FACTOR = lst[0].tipofactor;
                cargaGrilla(TIP_FACTOR);

                if (TIP_FACTOR == "D") {
                    lblTitulo.Text = "FACTORES DE DISMINUCION";
                }
                else if (TIP_FACTOR == "I")
                {
                    lblTitulo.Text = "FACTORES DE INCREMENTO";
                }
            }
            catch (Exception ex)
            {
                err_mens = ex.Message;
                iresultado = 99;
            }
            finally { 
                if(iresultado==99){
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "err_msg", "ShowError('" + err_mens + "');", true);
                }else{
                    
                }            
            }
        
        
        }

        protected void btnGraba_Click(object sender, EventArgs e)
        {
            string COD_PERIODO = hdnperiodo.Value;
            string COD_EMPRESA = hdncodempresa.Value;
            decimal COD_ESTABLECIMIENTO = Convert.ToDecimal(hdncodestablecimiento.Value);
            decimal COD_FACTOR = 0;
            string DES_DETALLE =string.Empty;
            string p_opcion = string.Empty;
            try
            {
                for (int i = 0; i < gvResultado.Rows.Count; i++)
                {
                    /*
                     * codfactor,desfactor,contador, desotros
                     */
                    GridViewRow row = gvResultado.Rows[i];
                    bool isChecked = ((CheckBox)row.FindControl("chkSelect")).Checked;
                    TextBox txt = new TextBox();
                    txt = (TextBox)row.FindControl("txtDetalle");
                    DES_DETALLE = txt.Text;
                    COD_FACTOR = 0;
                    Hashtable p_tabla_insert = new Hashtable();
                    p_tabla_insert.Add("COD_PERIODO", COD_PERIODO);
                    p_tabla_insert.Add("COD_EMPRESA", COD_EMPRESA);
                    p_tabla_insert.Add("COD_ESTABLECIMIENTO", COD_ESTABLECIMIENTO);
                    p_tabla_insert.Add("COD_FACTOR", gvResultado.DataKeys[i].Values["codfactor"].ToString());
                    p_tabla_insert.Add("DES_DETALLE", DES_DETALLE);

                    if (isChecked)
                    {
                        p_opcion = "I";
                    }
                    else
                    {
                        p_opcion = "D";
                    }
                    p_tabla_insert.Add("OPCION", p_opcion);
                    iresultado = _consultas.InsertaIncrementoDisminuye(p_tabla_insert);
                }
                err_mens = "Se registró la información de Factores";
            }
            catch (Exception ex)
            {
                err_mens = ex.Message;
                iresultado = 99;
            }
            finally { 
                if(iresultado==99){
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "err_msg", "ShowError('" + err_mens + "');", true);
                }else{
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "err_msg", "ShowError('" + err_mens + "');", true);
                    cargaValidacionFactores();
                }            
            }
        }

        protected void btnLimpia_Click(object sender, EventArgs e)
        {
            
        }

        protected void gvResultado_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            CheckBox chk = new CheckBox();
            string smarca = string.Empty;
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                int rindex = e.Row.RowIndex;
                chk = (CheckBox)e.Row.FindControl("chkSelect");
                smarca = e.Row.Cells[2].Text;
                if (smarca == "1")
                {
                    chk.Checked = true;
                    e.Row.CssClass = "RowStyleChk";
                }
                else { 
                    chk.Checked = false; 
                }
            }
        }


    }
}